package demo02;


//设计模式入门
public class DuckTest {
	
	public static void main(String[] args) {
		
		Duck mallard =  new MallardDuck();//野鸭子
		mallard.perfromQuack();//抽象鸭子的方法指向野鸭子
		mallard.perfromFly();
		
		/*结果：
		 * 我会嘎嘎叫
		         我是会飞的鸭子
		         */
		Duck model = new ModelDuck();//模型鸭
		model.perfromFly();//第一次调用委托给了FlyBehavior实例，在ModelDuck对象中调用
		model.setFly(new FlyRocketPowered());//调用继承来的set方法修改实现类
		model.perfromFly();//调用
		model.perfromQuack();
		/*
		 * 我是鸭子但我不会飞
			借助火箭我也会飞
			我会嘎嘎叫*/
	}
}
